/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Diego
 */
public class FabricaConexao {
    public static Connection GeraConexao() {

        Connection Conexao = null;
        String URL = "jdbc:mysql://localhost/bd_saulo";
        String Usuario = "root";
        String Senha = "admin";
        try {
            Conexao = DriverManager.getConnection(URL, Usuario, Senha);
        } catch (SQLException ex) {
            Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
        }
        return Conexao;
    }
     public static int PegaCodigo(String cod, String tab) {
        Connection conexao = FabricaConexao.GeraConexao();

        Statement consulta = null; // statement não tem parametro / a PreparedStatement ja utiliza parametros
        ResultSet resultado = null;
        int ProxCodigo = -1;

        String sql = "select max("+cod+") as MaiorCodigo from "+tab+";";

        try {
            consulta = (Statement) conexao.createStatement();
            resultado = consulta.executeQuery(sql);

            resultado.next();// Faz o java apontar para o primeiro registro (e tb ir apontando para o proximo caso seja dado outro next)/ Retorna false caso na tenha mais dados na tabela true caso ainda tenha mais elementos;
            ProxCodigo = resultado.getInt("MaiorCodigo");
            ProxCodigo++;
        } catch (Exception e) {
            System.out.print("Erro ao recuperar codigo: " + e);
        } finally {
            try {
                consulta.close();
                resultado.close();
                conexao.close();
            } catch (Exception e) {
                System.out.print("Erro ao fechar conexao: " + e);
            }
        }
        return ProxCodigo;
    }
     public static void Excluir(int cod, String tab, String campoCod) {
        Connection conexao= FabricaConexao.GeraConexao();

        PreparedStatement insereSt = null;
        String sql = "delete from "+tab+" where "+campoCod+" =" + cod;
        try {
            insereSt = conexao.prepareStatement(sql);
            insereSt.executeUpdate();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Cidade não pode ser excluída, pois possui clientes vinculados a ela");
            Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
            
        } finally {
            try {
                insereSt.close();
                conexao.close();
            } catch (SQLException ex) {
                Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
            }

        }

    }
      
}
